package com.shujia.core

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo08Sample {
  def main(args: Array[String]): Unit = {

    // 抽样
    // 创建Spark Context
    val conf: SparkConf = new SparkConf()
    conf.setAppName("Demo08Sample")
    conf.setMaster("local")

    val sc: SparkContext = new SparkContext(conf)

    val stuRDD: RDD[String] = sc.textFile("Spark/data/students.txt")

    /**
     * sample 转换算子 可以对数据进行抽样
     * 参数：
     *  withReplacement 布尔值 表示有无放回
     *  fraction 抽取数据的比例 因为是随机抽取 所以比例只是大概 不会精确
     *  seed 随机数种子（
     *        如果需要让每一次抽样的结果都一致则可以设置为固定的值
     *        如果需要让每一次抽样的结果都不一致则可以设置为随机值（默认）
     *        ）
     */
    val sampleRDD: RDD[String] = stuRDD
      .sample(withReplacement = false, fraction = 0.01
//        , seed = 1
      )

    sampleRDD.foreach(println)

  }

}
